1. Field of the Invention
This invention relates to the field of communications networks. In particular, the invention relates to a system for controlling the use of a communication channel in a communication network.
2. Description of the Related Art
Communications systems are comprised of several distinct networks. The public switched telephone network (PSTN) is one example. Others include the facsimile network. Although facsimile machines typically transmit facsimiles using the PSTN, facsimile machines do not interoperate with the voice content of the PSTN. In that sense, facsimile machines form a distinct network of communications devices that are not easily linked with the PSTN. Similarly, pagers form a network of devices. Other networks include data transmission networks such as the Internet and private networks. Also, voice over IP is becoming more common and that forms another network.
Each network operates on a different set of protocols and it is difficult for a user of one network to communicate with a user on another network using the network of their choice. It can also be difficult for individual users of a single network to communicate with multiple people on the same network simultaneously.
Accordingly, what is needed is a system for allowing users of different communications networks to communicate with one or more users through a single interface that will control the communications channels used.
A system for controlling the use of communication channel in a communication network is described. The system includes a network such as an Ethernet, a private Intranet, a subnetwork of the public Internet, or some other type of network. The network has service nodes that are grouped into multiple sets. Each set may have one or more service nodes of the same type. For example, one set of service nodes might provide billing functions. There might be four service nodes in the billing function set.
One of the sets has a member node with an interface for communicating with a remote terminal. The interface is coupled to a user interface process to include a user of a remote terminal in the network. The user interface process may be the Rendezvous(trademark) Routing Daemon or some other interface that allows the user at the remote terminal to contact the network and send messages to the service nodes. One of the sets has a member node with an interface to the communication network. This might be a switch controller. The switch controller has a process coupled to the interface that controls the establishment of a communication channel for the user.
The system may include logic to receive requests to contact one or more people from the remote terminal, forward messages into the network, respond to requests and forward messages in the network concerning the requests to the remote terminal. For example, a user might request a conference call between herself/himself and three other people. A message would be sent from the remote terminal to the user interface process and then be forwarded into the network. Messages concerning the status, routing, and other aspect of the conference call are forwarded from the network to the remote terminal.
In one embodiment, each request is assigned a unique transaction identifier. In one embodiment once a transaction identifier has been assigned, it is included with all messages concerning that transaction in the network.
In one embodiment, each of the sets of service nodes is part of a distributed queue. The distributed queue enables the requests for service functions to be distributed amongst all of the service nodes performing like functions.
In one embodiment, the service nodes use the multicast protocol to send messages to one another. In another embodiment, the user datagram protocol is used to send messages. In another embodiment, the transmission control protocol over Internet Protocol (IP) is used to send messages.
In one embodiment, the service nodes of the system are located in a private subnetwork.
The communication network may be the public switched telephone network, a voice over IP network, or some other type of communication network.
The communication channel may comprise a voice channel, a data channel, a voice conference channel, or some other type of channel in the communication network.
One of the service functions may be to act as a service manager. The service manager acts as an intermediary between messages from the remote terminal and the rest of the system. The service manager receives user requests for communication channels, requests validation of the account information in the requests, and forwards the requests to a switch controller in response to the validation.
One of the service functions is a billing function. The billing function receives requests for the use of communication channels, validates account information in the requests and stores information about the use of communication channels. The billing function may also charge credit cards for the use of communication channels and communication services.
Another service function is a logging function. The logging function includes the ability to monitor the messages in the network and to store messages matching predefined criteria. The logger function also includes the ability to retrieve stored messages and generate a representation of the status of the system.
One of the service functions is a notifier. The notifier responds to messages matching predefined criteria with a specified action. The notifier may respond to error conditions by contacting an operator of the system using the communication network. The notifier may also store user request for use of communication channels and until a specified time and then forward the request into the network at the specified time.
Another service function is the switch controller. The switch controller receives requests for use of communication channels and forwards the requests into the communication network. The switch controller receives status information about the communication channels and the communication network. The switch controller forwards status information to the remote terminal. The switch controller also monitors the remaining credit available for the user and requests additional credit when the available credit falls below a predetermined amount. The switch controller can terminate the use of a communication channel when the available credit reaches zero.
In some embodiments, the system is embodied on a computer program product on a computer usable medium such as CD-ROM or floppy diskette. The computer usable medium has computer readable program code for causing a computer to control communication session. The computer program has instructions that receive requests from a user to communicate with a person. The program has instructions for composing a message to a communication server, such as the above system, requesting communication session. The program has instructions for monitoring the status of the communication session and for controlling the communication session.
The computer program has instructions for identifying the current location of the user and the current phone number at that location for the user. The program also has instructions for identifying the user account information and for requesting a phone number or determining a phone number for the person being called.
The computer program includes instructions for generating a message including a phone number for the user and a phone number for each person being contacted together with the account number for the user. The computer program includes instructions for sending a message over the network to the communication server.
The computer program has instructions for inserting a time for the communication session into the message and communicating that to the communication server. This can be used to setup a conference call at a designated time.
The computer program includes instructions to receive status messages from the communication server. The status messages can indicate the on-hook, off-hook, and ringing status of all of the parties to the call. The computer program can update the computer display to reflect the status of the parties to the communication session. In one embodiment, icons are used to show a ringing phone, a phone off-hook and a phone on-hook response to the status of each phone.
The computer program includes instructions for adding people to the communication session, removing people from the communication session, muting a participant""s ability to speak, and placing a caller on hold during the communication session. The computer program also includes instructions for indicating that the communication session should end.
When multiple participants to the communication session are using the communication server, the computer program supports messaging over a data network to other users of the communication server.
The computer program includes instructions for locating a person and requesting status information from the communication server about the person. The status information might indicate the current phone number of the person and whether or not the person is on the phone.
The computer program includes instructions for requesting billing information about services used.
One embodiment supports anonymous communication between two people over the public switched telephone network. The method begins with the provision of each person""s phone number to a computer rather than to each other. The computer then calls the first person and the second person on a conference channel in the public switched telephone network. The two parties are able to communicate without giving away their phone numbers. In one embodiment a link is included on a web page to allow someone viewing a web page to communicate anonymously with another party. In another embodiment, a link is included in a chat room to allow two participants of the chat room to have an anonymous conversation.
One embodiment a computer library provides a set of message definitions and service function interfaces. The message definitions include account message definitions, member message definitions, and call message definitions. The service function interfaces include interfaces for a service manager, a billing manager, a notifier, a logger and a switch controller. The interfaces describe the program calls that the service functions must implement.